# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
from Modules import Datenbank, Settings_new

class Modell(QtCore.QAbstractTableModel):
    dataset = {}
    columnDescription = []
    def __init__(self, tableName):
        QtCore.QAbstractTableModel.__init__(self)
        
        db = Datenbank.Datenbank("databases/test.sqlite")
        s = Settings_new.Settings()
        
        
        ###Tabellebeschreibung für konkrete Tabelle finden
        for tableDescriptions in s.settings["tables"]:
            if tableDescriptions[0] == tableName:
                
                ###Laden der konkreten Datensätze in das Classenattribut
                db.loadDB(tableName)
                self.dataset = db.tableValues[tableName]
                
                ###Laden der Metainformationen für Spalten
                for i in range(len(tableDescriptions[1])):
#                           #Name###################  #GUI##########################
                    date = [tableDescriptions[1][i], tableDescriptions[2]["GUI"][i]]
                    if date[1] == "combo":
#                                   #combo Werte##########################################
                        date.append(tableDescriptions[2]["COMBO"][tableDescriptions[1][i]])
                    self.columnDescription.append(date)
                
                ###keine weitere Suche nötig
                break
                
    def rowCount(self, parent=QtCore.QModelIndex()):
        return len(self.dataset)
    
    def data(self, index, role=QtCore.Qt.DisplayRole):
        return QtCore.QVariant(self.dataset[index.row()][index.column()])

###############################
###############################

class View(QtGui.QTableView):
    def __init__(self, modell, parent = None):
        QtGui.QTableView.__init__()
        self.delegate = ViewDelegate() 
        self.setItemDelegate(self.delegate) 
        self.setModel(modell) 

###############################
###############################

class ViewDelegate(QtGui.QItemDelegate):
    def __init__(self):
        QtGui.QItemDelegate.__init__(self)
        
    def sizeHint(self, option, index):
        return 100

            
modell = Modell("Widerstände")
print (modell.dataset)
print (modell.columnDescription)